package com.jt.system.dao;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.jt.pojo.User;
/*import com.jt.system.pojo.User;*/
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;

import java.util.List;

@Mapper
public interface UserMapper extends BaseMapper<User> {
    @Select("select id,username,password,status "
            +" from tb_users " +
            " where username=#{username}")
    User selectUserByUsername(String Username);

    /**
     * 基于用户Id查询用户权限，涉及到的表有：
     * 1）tb_user_roles（用户角色关系表，可以在此表中基于用户Id找到用户角色）
     * 2）tb_role_menus(角色菜单关系表，可以基于角色Id找到菜单Id)
     * 3）tb_menus(菜单表，菜单为资源的外在表现形式，在此表中可以基于菜单id找到权限标识)
     * 基于以上三张表获取用户权限，有什么解决方法？
     * 1）方案1：三次单表查询
     * 2）方案2：嵌套查询
     * 3）方案3：多表查询
     * @param userId
     * @return
     */
    @Select("select permission from tb_menus a join tb_role_menus b join tb_user_roles c\n" +
            " on a.id=b.menu_id and b.role_id=c.role_id where user_id=#{userId};")
    List<String> selectUserPermissions(Long userId);
}
